package com.xbhog.screwdemo.实体;

import java.util.Objects;
import java.util.UUID;

//UserEntity实体类
public class UserEntity {
//实体的唯一标识符
    private final UUID id;
    //用户的状态属性
    private String name;
    private String email;

    //构造函数，用于创建实体实例
    public UserEntity(UUID id, String name, String email) {
        this.id = id;
        this.name = name;
        this.email = email;
//可以在这里添加验证逻辑，确保创建的实体是有效的
    }

    //实体的行为方法，例如更新用户的姓名
    public void updateName(String newName) {
//可以在这里添加业务规则，例如验证姓名的格式
        this.name = newName;
    }

    //实体的行为方法，例如更新用户的电子邮件地址
    public void updateEmail(String newEmail) {
//可以在这里添加业务规则，例如验证电子邮件地址的格式
        this.email = newEmail;
    }

    //Getter方法
    public UUID getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }

    //实体的equals和hashCode方法，基于唯一标识符实现
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        UserEntity user = (UserEntity) o;
        return id.equals(user.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id);
    }

    //toString方法，用于打印实体信息
    @Override
    public String toString() {
        return "UserEntity{" +
                "id=" + id +
                ",name='" + name + '\'' +
                ",email='" + email + '\'' +
                '}';
    }
}

